Rhythm_Strike
Kurzinfo
Themenbereich
Softwareentwicklung
Lernende/r
Damir Kharakhursakh
Lehrbetrieb
CSS Versicherung
Betreuer
Urs Nussbaumer, Manuel Gut
Projekt-Website
Rhythm_Strike auf itch.ioAufgabenstellung
Das Ziel dieses Projekts war die Entwicklung eines interaktiven 4-Lane-Rhythmus-Spiels im Unity. Die Ausgangslage war der Wunsch, ein Spiel zu kreieren, das Musik und Gameplay präzise synchronisiert. Dabei sollten Songs implementiert werden, bei denen der Spieler im Takt herabfallende Noten treffen muss, um Punkte zu erzielen und Highscores zu knacken.
Ergebnisse
Das Endprodukt ist ein voll funktionsfähiges Musikspiel mit 3 Levels. Zu den wichtigsten Funktionen gehören ein dynamisches Scoring-System mit Hit-Feedback, ein persistentes Einstellungsmenü für die Lautstärkeregelung sowie ein integrierter Song-Recorder für die Erstellung neuer Spielinhalte. Das Spiel wurde erfolgreich für WebGL optimiert und ist nun direkt im Browser auf itchIo spielbar.
Lösungskonzept
Die Lösung wurde objektorientiert in C# aufgebaut. Das Herzstück bildet ein Synchronisations-System, das auf Timestamps basiert, um Audio und Visuals abzugleichen. Zur Datenverwaltung wurden ScriptableObjects verwendet, die die Noten-Daten effizient speichern. Das User Interface nutzt TextMeshPro für eine scharfe Darstellung und Responsive-Layout-Komponenten, um verschiedene Bildschirmauflösungen zu unterstützen.
Aufgetretene Probleme
Eine grosse Herausforderung war die Datenpersistenz beim Recording-System; Noten wurden zunächst nur im Cache gespeichert und gingen beim Schliessen verloren. Dies wurde durch den Einsatz von SetDirty-Funktionen behoben. Zudem gab es Schwierigkeiten mit der Skalierung der Benutzeroberfläche auf verschiedenen Monitoren, was durch eine korrekte Implementierung des Canvas Scalers gelöst wurde.
Ausblick
In einer zukünftigen Version könnte das Projekt um ein globales Online-Leaderboard und ein Benutzer-Login-System erweitert werden, um den kompetitiven Aspekt zu stärken. Zudem wäre die Implementierung eines dynamischen Hintergrund-Shaders denkbar, der sich visuell dem Rhythmus der Musik anpasst.